import logging, os
from datetime import datetime


class MyLogger(logging.Logger):
    def __init__(self, name, log_dir='logs'):
        super().__init__(name)
        # 创建一个logger
        self.setLevel(logging.INFO)

        # 创建一个StreamHandler，用于输出到控制台
        console_handler = logging.StreamHandler()
        console_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
        self.addHandler(console_handler)
        if not os.path.exists(log_dir):
            log_dir = os.getcwd() + '\\logs'
            os.makedirs(log_dir)
        # 根据当前日期生成日志文件名
        log_file = f"{log_dir}/{datetime.now().strftime('%Y-%m-%d_%H_%M_%S')}.log"

        # 创建一个文件处理器，指定日志文件名
        file_handler = logging.FileHandler(log_file, encoding="utf-8")
        # 配置日志输出格式
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        file_handler.setFormatter(formatter)

        self.addHandler(file_handler)
